1. Field of the Invention
The present invention relates generally to computer networking, and more particularly to an apparatus and method for preserving routable IP addresses using Address Resolution Protocol (ARP) proxy.
2. Description of Related Art
With the proliferation of consumer Internet access and Web-sites, the demand for Internet addresses, or Internet Protocol (IP) addresses, has skyrocketed. The predominant protocol in use today, IP version 4 (IPv4) [see RFC-791], provides approximately four billion public IP addresses. Although this seems like more than enough IP addresses, the US Census Bureau predicts that by 2050 the world will be home to about 9 billion people. What is more, each person will probably have more than one networked device, each of which will require its own IP address.
This demand for Internet addresses has resulted in the need for preserving IP addresses. In fact, IP address preservation is one of the many challenges facing Internet Service Providers (ISPs) and Web hosting facilities today. Additionally, each individual IP address has an associated cost per year.
One solution to preserving IP addresses is the successor to IPv4, namely IPv6, which will provide for 128-bit long addresses, which translates to an unthinkable 340 trillion, trillion, trillion (3.4×1038) addresses. Until such time that IPv6 is fully implemented, ISPs and Web-hosting facilities need to preserve IP addresses.
Another solution, is to host multiple Web-sites from a single IP address by using Web servers such as MICROSOFT IIS™ or APACHE™. Such Web servers give each Web-site its own “document root” with a unique home page. This approach works well for hosting a moderate number of small sites, but becomes burdensome as Web-sites grow from a shared-hosting environment to needing their own server to meet customer demands.
The current use of routable IP addresses will now be explained. FIG. 1 is a block diagram of an existing system 100 for connecting multiple hosts, such as first host 102 and second host 116, to one another. Each host 102 or 116 is typically a desktop computer. The hosts 102 and 116 are coupled to one another through gateways, such as first gateway 106 and second gateway 112, coupled to the Internet 110. Gateways 106 or 112 are any bi-directional Internet Protocol (IP) communication devices that couple to the Internet 110 via communication links 108. Such gateways include analog “dial-up” modems, DSL gateways, cable modems, or the like.
The first host 102 couples to the first gateway 106 via a first local network, such as a first Local Area Network (LAN) 104. Similarly, the second host 116 couples to the second gateway 112 via a second local network, such as an second Local Area Network (LAN) 114. The first LAN and second LANs are typically Ethernet networks, where Ethernet is well understood in the art to be the most widely used LAN access method, defined by the Institute of Electrical and Electronics Engineers (IEEE) as the 802.3 standard.
Packets routed from one host to another are routed using the Transmission Control Protocol/Internet Protocol (TCP/IP) communications protocol. For example, the first host 102, having an IP address and sub-network (hereinafter “subnet”) mask of 64.1.1.5/30, addresses a packet to the second host 116 having an IP address and subnet mask of 64.1.1.9/30. Because the second host 116 is not on the same local network as the first host 102, the first host consults its routing table to determine where to send the packet. The first host's routing table informs the first host to send the packet to its Default Gateway (D.G.), which in this case is the IP address and subnet mask of 64.1.1.6/30. A Default Gateway is the router entry used to forward all traffic that is not addressed to a host within the local network. However, a Default Gateway is not to be confused with the gateways 106 and 116. In accordance with its routing table, the first host 102 then sends the packet to the IP address and sub-network mask of 64.1.1.6/30, which is the IP address and sub-network mask of the first gateway 106.
The first gateway 106 receives the packet and consults its own routing table to ascertain where next to send the packet. The first gateway's routing table instructs the first gateway 106 to send the packet to its Default Gateway, which is in this case the Internet 110. In accordance with its routing table, the first gateway then sends the packet to the Internet 100.
As is well understood by those skilled in the art, the packet is subsequently routed through the Internet 110 to the second gateway 112. The second gateway 112 receives the packet and consults its routing table to determine where to send the packet. The second gateway's routing table instructs the second gateway 112 to send any packets addressed to the network of 64.1.1.9/30 to the second LAN 114 (LN2). In accordance with its routing table, the second gateway then forwards the packet to the second LAN 114, whereafter the second host 116 receives the packet from the second LAN 114. Likewise, the process for transmitting packets from the second host 116 to the first host 102 is similar to that described above.
As can be seen from the description above, a separate routable IP address is needed for each host and each gateway, where a routable IP address is any address that can be “seen” and accessed from the outside world, i.e., the Internet. However, to allow each host-gateway combination to communicate between one another, the IP addresses for each host-gateway combination must be on the same local network. For example, the IP address and subnet mask of the first host, i.e., 64.1.1.5/30, and the IP address and subnet mask of the first gateway, i.e., 64.1.1.6/30, are directly coupled to the first local network, as this subnet mask of /30 includes the four IP addresses of 64.1.1.4, 64.1.1.5, 64.1.1.6, and 64.1.1.7. In other words, a minimum of two routable IP addresses on the same local network are needed for each host and gateway combination. However, to obtain two IP addresses, a minimum of four IP addresses must be assigned to each local network. This is because subnet masks can only divide into networks having a set group of IP addresses in each sub-network. These groups of IP addresses are dictated by the subnet mask, as indicated below.
SUBNET MASKSHORTHANDNUMBER OF ADDRESSES255.255.255.0/24 [8-bit]28 =256= 254 hosts + 1 bcast + 1 net base255.255.255.128/25 [7-bit]27 =128= 126 hosts + 1 bcast + 1 net base255.255.255.192/26 [6-bit]26 =64= 62 hosts + 1 bcast + 1 net base255.255.255.224/27 [5-bit]25 =32= 30 hosts + 1 bcast + 1 net base255.255.255.240/28 [4-bit]24 =16= 14 hosts + 1 bcast + 1 net base255.255.255.248/29 [3-bit]23 =8= 6 hosts + 1 bcast + 1 net base255.255.255.252/30 [2-bit]22 =4= 2 hosts + 1 bcast + 1 net base255.255.255.254/31 [1-bit]21 =—invalid (no possible hosts)255.255.255.255/32 [0-bit]20 =1a host route
Therefore, in use, to obtain two routable IP addresses, a sub-network having a minimum of four routable IP addresses must be assigned to each local network. Unfortunately, this wastes valuable routable IP addresses. Also, as each IP address has an associated cost, the wasted IP addresses are an unnecessary cost to the ISP and/or consumer.
In light of the above, it would be highly desirable to provide an apparatus and method for preserving IP addresses.